Systems and methods for automatically recommending content

ABSTRACT

Systems and methods are provided for automatically recommending content. One example method includes receiving, from a computing device, a request for content and generating an initial result set in response to the request. A user profile associated with the request is identified. 
     Based on the initial result set and the user profile, a positivity index score for the initial result set is determined. Based on the positivity index score, a type of additional content to add to the initial result set is determined. A modified result set is generated by adding the additional content to the initial result set. At least a portion of the modified result set is transmitted to the computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This is a continuation of U.S. patent application No. 17/020,385, filedon Sep. 14, 2020. The content of which is incorporated herein byreference in its entirety.

BACKGROUND

The disclosure relates to automatically recommending content and, inparticular, systems and related methods for recommending content basedon an initial result of a query.

SUMMARY

With the proliferation of computing devices, such as smart TVs, laptops,smartphones, tablets, and smart speakers, there has been an increase inthe use of systems that provide query results, news articles, or othertypes of digital content to users. For example, a content providersystem may provide to a user news items via a news feed that aggregatesnews stories. Such a system often provides content of a first type basedon a variety of factors, such as current events. For example, when asignificant event such as an economic recession occurs, the majority ofcontent provided to the user may be directed towards the recession,which is an example of content of a first type. If the user performs aquery based on the recession, this may be recorded by a content providerand used to recommend further content directed towards the recession,reinforcing the provision of content of the first type. If a user isworried about the recession and inputs into the system a query, forexample, directed towards “impact of recession on investments,” this maybe recorded by the content provider system and used to recommend furthercontent directed towards the recession, again reinforcing the provisionof content of the first type. As such, the system may provide the userwith excess content of a first type. In view of the foregoing, it wouldbe beneficial to have a system that can automatically recommend contentof a variety of types based on characteristics of the content, forinstance, to provide a set of content having a more balanced breadth oftype.

In accordance with a first aspect of the disclosure, a method isprovided for automatically recommending content. The method includesreceiving, from a computing device, a request for content and generatingan initial result set in response to the request. A user profileassociated with the request is identified. Based on the initial resultset and the user profile, a positivity index score for the initialresult set is determined. Based on the positivity index score, a type ofadditional content to add to the initial result set is determined. Amodified result set is generated by adding the additional content to theinitial result set. At least a portion of the modified result set istransmitted to the computing device. In some embodiments, determiningthe type of additional content to add to the initial result set furthercomprises comparing the positivity index score to a threshold value; andif the positivity index score is above the threshold value, addingcontent of a first type to the initial result set; or if the positivityindex score is below the threshold value, adding content of a secondtype to the initial result set.

In some embodiments, determining the positivity index score furthercomprises comparing the determined positivity index score with atime-averaged positivity index score and weighting the positivity indexscore based on the time-averaged positivity index score. In someembodiments, determining the positivity index score further comprisesbuilding a user knowledge graph, wherein the user knowledge graph isbased on the user profile and comprises a plurality of fields; buildingan initial result set knowledge graph for each result in the initialresult set, wherein each of the initial result set knowledge graphscomprises a plurality of fields; determining a component positivityindex between one or more fields in each of the initial result setknowledge graphs and one or more fields of the user knowledge graph; anddetermining the positivity index score based on the computed componentpositivity indices.

In some embodiments, the method further comprises determining, based onthe modified result set and the user profile, a positivity index scorefor the modified result set;

comparing the positivity index score of the modified result set to athreshold value to determine whether to add further additional contentof a first type or a second type to the modified result set; if thepositivity index is above or below the threshold value, respectivelygenerating a second modified result set by adding the additional contentof a first type or a second type to the modified result set; andtransmitting, to the computing device and in place of the modifiedresult set, at least a portion of the second modified result set.

In some embodiments, the positivity index score is determined, at leastin part, with a positivity analyzer engine. In some embodiments, thepositivity index score is determined, at least in part, with apositivity analyzer engine, wherein the positivity analyzer enginemaintains a set of key value pairs to link a component of the userprofile with a component of the initial result set. In some embodiments,a server is configured to receive the request for content, and theserver performs at least one of generating the initial result set,determining the positivity index score for the initial result set,determining the type of additional content to add to the initial resultset, generating a modified result set and/or transmitting at least aportion of the modified result set. In some embodiments, the modifiedresult set comprises news. In some embodiments, the user profilecomprises at least one of age, occupation, location, financial statusand/or health condition.

In accordance with a second aspect of the disclosure, a system isprovided for automatically recommending content. The system includes acommunication port and control circuitry. The control circuitry isconfigured to receive, from a computing device via the communicationport, a request for content and generate an initial result set inresponse to the request. A user profile associated with the request isidentified. Based on the initial result set and the user profile, apositivity index score for the initial result set is determined. Basedon the positivity index score, a type of additional content to add tothe initial result set is determined. A modified result set is generatedby adding the additional content to the initial result set. At least aportion of the modified result set is transmitted to the computingdevice via the communication port. In some embodiments, the controlcircuitry configured to determine the type of additional content to addto the initial result set is further configured to compare thepositivity index score to a threshold value; and if the positivity indexscore is above the threshold value, add content of a first type to theinitial result set; or if the positivity index score is below thethreshold value, add content of a second type to the initial result set.

In some embodiments, the control circuitry configured to determine thepositivity index score is further configured to compare the determinedpositivity index score with a time-averaged positivity index score andweight the positivity index score based on the time-averaged positivityindex score. In some embodiments, the control circuitry configured todetermine the positivity index score is further configured to build auser knowledge graph, wherein the user knowledge graph is based on theuser profile and comprises a plurality of fields; build an initialresult set knowledge graph for each result in the initial result set,wherein each of the initial result set knowledge graphs comprises aplurality of fields; determine a component positivity index between oneor more fields in each of the initial result set knowledge graphs andone or more fields of the user knowledge graph; and determine thepositivity index score based on the computed component positivityindices.

In some embodiments, the control circuitry is further configured todetermine, based on the modified result set and the user profile, apositivity index score for the modified result set; compare thepositivity index score of the modified result set to a threshold valueto determine whether to add further additional content of a first typeor a second type to the modified result set; if the positivity index isabove or below the threshold value, respectively generate a secondmodified result set by adding the additional content of a first type ora second type to the modified result set; and transmit, to the computingdevice and in place of the modified result set, at least a portion ofthe second modified result set.

In some embodiments, the control circuitry configured to determine thepositivity index score is further configured to determine the positivityindex score, at least in part, with a positivity analyzer engine. Insome embodiments, the control circuitry configured to determine thepositivity index score is further configured to determine the positivityindex score, at least in part, with a positivity analyzer engine,wherein the positivity analyzer engine maintains a set of key valuepairs to link a component of the user profile with a component of theinitial result set. In some embodiments, a server is configured toreceive the request for content, and the server comprises controlcircuitry configured to perform at least one of generating the initialresult set, determining the positivity index score for the initialresult set, determining the type of additional content to add to theinitial result set, generating a modified result set and/or transmittingat least a portion of the modified result set. In some embodiments, thecontrol circuitry configured to generate a modified result set isfurther configured to generate a modified result set comprising news. Insome embodiments, the control circuitry is further configured toidentify a user profile comprising at least one of age, occupation,location, financial status and/or health condition.

In accordance with a third aspect of the disclosure, a non-transitorycomputer-readable medium is provided having non-transitorycomputer-readable instructions encoded thereon for automaticallyrecommending content that, when executed by control circuitry, cause thecontrol circuitry to receive, from a computing device, a request forcontent; generate an initial result set in response to the request;identify a user profile associated with the request; determine, based onthe initial result set and the user profile, a positivity index scorefor the initial result set; determine, based on the positivity indexscore, a type of additional content to add to the initial result set;generate a modified result set by adding the additional content to theinitial result set; and transmit, to the computing device, at least aportion of the modified result set. In some embodiments, execution ofthe instruction to determine the type of additional content to add tothe initial result set further causes the control circuitry to comparethe positivity index score to a threshold value; and if the positivityindex score is above the threshold value, add content of a first type tothe initial result set; or if the positivity index score is below thethreshold value, add content of a second type to the initial result set.

In some embodiments, execution of the instruction to determine thepositivity index score further causes the control circuitry to comparethe determined positivity index score with a time-averaged positivityindex score and weight the positivity index score based on thetime-averaged positivity index score. In some embodiments, execution ofthe instruction to determine the positivity index score further causesthe control circuitry to build a user knowledge graph, wherein the userknowledge graph is based on the user profile and comprises a pluralityof fields; build an initial result set knowledge graph for each resultin the initial result set, wherein each of the initial result setknowledge graphs comprises a plurality of fields; determine a componentpositivity index between one or more fields in each of the initialresult set knowledge graphs and one or more fields of the user knowledgegraph; and determine the positivity index score based on the computedcomponent positivity indices.

In some embodiments, execution of the instructions further causes thecontrol circuitry to determine, based on the modified result set and theuser profile, a positivity index score for the modified result set;compare the positivity index score of the modified result set to athreshold value to determine whether to add further additional contentof a first type or a second type to the modified result set; if thepositivity index is above or below the threshold value, respectivelygenerate a second modified result set by adding the additional contentof a first type or a second type to the modified result set; andtransmit, to the computing device and in place of the modified resultset, at least a portion of the second modified result set.

In some embodiments, execution of the instruction to determine thepositivity index score further causes the control circuitry to determinethe positivity index score, at least in part, with a positivity analyzerengine. In some embodiments, execution of the instruction to determinethe positivity index score further causes the control circuitry todetermine the positivity index score, at least in part, with apositivity analyzer engine, wherein the positivity analyzer enginemaintains a set of key value pairs to link a component of the userprofile with a component of the initial result set. In some embodiments,a server is configured to receive the request for content, and theserver having non-transitory computer-readable instructions encodedthereon that, when executed by control circuitry, cause the controlcircuitry to perform at least one of generating the initial result set,determining the positivity index score for the initial result set,determining the type of additional content to add to the initial resultset, generating a modified result set and/or transmitting at least aportion of the modified result set. In some embodiments, execution ofthe instruction to generate a modified result set further causes thecontrol circuitry to generate a modified result set comprising news. Insome embodiments, execution of the instruction to identify a userprofile further causes the control circuitry to identify a user profilecomprising at least one of age, occupation, location, financial statusand/or health condition.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout and in which:

FIG. 1 shows an exemplary environment in which a request for content isreceived and content is automatically recommended, in accordance withsome embodiments of the disclosure;

FIG. 2 shows another exemplary environment in which a request forcontent is received and content is automatically recommended, inaccordance with some embodiments of the disclosure;

FIG. 3 is a block diagram representing components of a computing deviceand data flow therebetween for receiving a request for content and foroutputting automatically recommended content, in accordance with someembodiments of the disclosure;

FIG. 4 is a flowchart representing a process for automaticallyrecommending content, in accordance with some embodiments of thedisclosure;

FIG. 5 is another flowchart representing a process for automaticallyrecommending content, in accordance with some embodiments of thedisclosure;

FIG. 6 is a further flowchart representing a process for automaticallyrecommending content, in accordance with some embodiments of thedisclosure; and

FIG. 7 shows how a positivity index score may be based on an initialresult set and a user profile via the use of knowledge graphs, inaccordance with some embodiments of the disclosure.

DETAILED DESCRIPTION

Methods and systems are disclosed herein for automatically recommendingcontent. As referred to herein, content is any information that can becategorized and communicated to a user. For example, content maycomprise news articles. Content may be displayed and/or played back to auser as text, a video, a series of pictures, audio or as a combinationof any of these. The disclosed methods and systems may be implemented ona computing device. As referred to herein, the computing device can beany device comprising a processor and memory, for example a television,a Smart TV, a set-top box, an integrated receiver decoder (IRD) forhandling satellite television, a digital storage device, a digital mediareceiver (DMR), a digital media adapter (DMA), a streaming media device,a DVD player, a DVD recorder, a connected DVD, a local media server, aBLU-RAY player, a BLU-RAY recorder, a personal computer (PC), a laptopcomputer, a tablet computer, a WebTV box, a personal computer television(PC/TV), a PC media server, a PC media center, a handheld computer, astationary telephone, a personal digital assistant (PDA), a mobiletelephone, a portable video player, a portable music player, a portablegaming machine, a smartphone, or any other television equipment,computing equipment, or wireless device, and/or combination of the same.

The methods and/or any instructions for performing any of theembodiments discussed herein may be encoded on computer-readable media.Computer-readable media includes any media capable of storing data. Thecomputer-readable media may be transitory, including, but not limitedto, propagating electrical or electromagnetic signals, or may benon-transitory, including, but not limited to, volatile and non-volatilecomputer memory or storage devices such as a hard disk, floppy disk, USBdrive, DVD, CD, media cards, register memory, processor caches, RandomAccess Memory (“RAM”), etc.

FIG. 1 shows an exemplary environment in which a request for content isreceived and content is automatically recommended. A computing device100 sends 102 a request for content via a communications network 104 toa server 106. In the depicted example, the request comprises a requestfor “financial news headlines.” However, the content may comprise anyinformation that can be categorized and communicated to a user. Therequest may be sent in response to a user opening a dedicated app, suchas a news app, on the computing device. Alternatively, the request maycomprise a user subscribing to a news alert service, such as via emailor an RSS feed. Alternatively, the request may comprise a request froman app that shows news headlines to a user. The request may be from auser performing a search for content via, for example a web browser or asmart speaker. The content may be text, a video, a series of pictures,audio or a combination of any of these. The communications network 104may be any suitable network, such as the internet, a local networkand/or a wireless network. The server 106 processes the request forcontent to generate an initial result set 108 comprising content. In thedepicted example, the initial result set comprises a set of “financialnews headlines,” as requested; however, the initial result set cancomprise any information that can be categorized and communicated to auser. The server 106 identifies a user profile 110. The user profile canbe a profile that is provided by a third party or by the user themself.Alternatively, the user profile may be stored in a database at theserver and accessed on demand, or information about the user can becollected at the server 106 and generated at the server 106 in realtime. Typically, the user profile comprises information about the usersuch as age, occupation, location, financial status and/or healthcondition. The user profile may comprise any other information about theuser that can be used in determining the positivity index score, asdiscussed below. The server 106 determines, based on the initial resultset and the user profile, a positivity index score 112 for the initialresult set. The determining may be performed, at least in part, with apositivity analyzer engine. Such an engine may analyze the initialresult set to determine the context of each result in the initial resultset, based on the user profile. The engine may generate a score for eachitem in the initial result set, based on the context of the result inlight of the user profile. A result of a first type may correspond to asection in the user profile such as occupation, and be given a positivescore based on the context of the result in light of the user profile. Aresult of a second type may correspond to the same section in the userprofile, but may be given a negative score based on the context of theresult in light of the user profile. A result of a third type maycorrespond to a different section in the user profile such as health,and be assigned zero based on the context of the result in light of theuser profile. More than one section of the user profile may be relevantto a result, and more than one result may be relevant to a singlesection of the user profile. The type may relate to whether the resultcorresponds positively or negatively to the user profile. A negativescore may be a negative decimal up to −1. and the positive score may bea positive decimal up to 1. Any scoring system may be used. A negativescore may be associated with a news article that corresponds“negatively” to a section in the user profile and a positive score maybe associated with a news article that corresponds “positively” to asection in the user profile. In the depicted example, the news headline“Global recession around the corner” corresponds to the user'soccupation of “banker.” As a “Global recession” is likely to negativelyimpact a “banker,” a “negative” positivity index score is assigned tothe result “global recession around the corner.” The scores for thedifferent results may be summed to determine a positivity index score.Scores for results that relate to different sections of a user profilemay be weighted differently. For example, results that relate to the ageof a user may be weighted more heavily than results that relate to theoccupation of a user. In this way, a positivity index score can bedetermined for an individual user. Additionally, the positivity enginemay further take into account previous results that have been shown tothe user. If a user has been presented with a similar result previously,the result may be given a larger weighting, to indicate that thatparticular result is being shown regularly. In this way, a time-averagedpositivity index score may be determined. The server 106 proceeds todetermine, based on the positivity index score, whether to addadditional content to the initial result set 114 and, if additionalcontent is to be added, the type of content to add to the initial resultset. For example, a positivity index score with a large magnitudeindicates that a user is receiving a large amount of that type ofcontent. To reduce the amount of content of that type that a userreceives, the server 106 determines content of a type that would reducethe magnitude of the positivity index score. A modified result set isgenerated by adding content to the initial result set. The modifiedresult set is the combination of at least a part of the initial resultset and the additional content. In the depicted example, the initialresult set comprises results that are of a negative type with respect tothe user's profile and hence leads to a negative positivity index score.In this example, to reduce the magnitude of the positivity index score,additional content is identified that is of a positive type with respectto the user's profile, “Bankers to get bonus despite recession.” In thisexample, the additional content of a positive type is added to theinitial result set to reduce the magnitude of the positivity index scoreof the initial result set. The server may compare the determinedpositivity index score, or the magnitude of the determined positivityindex score, to a threshold positivity index score, and if thedetermined positivity index score is above the threshold (in the case ofa positive score), then the server identifies a type of additionalcontent to add to the initial result set and adds the additional contentto the initial result set. This additional content may be of a type thatreduces the magnitude positivity index score, such that the positivityindex score is closer to or below the threshold value. The modifiedresult set is transmitted 116, via the communications network 104 to thecomputing device 100. Once the computing device has received themodified result set, the computing device 100 displays the modifiedresult set 118 and/or plays back the modified result set 118 to the uservia a speaker. In the depicted example, the magnitude of the positivityindex score of the modified result set is smaller than the magnitude ofthe positivity index score of the initial result set. The server 106 mayperform the aforementioned steps 108-114 in realtime. Alternatively, theserver 106 may anticipate receiving a request for content from acomputing device 100 and perform the aforementioned steps 108-114 beforethe request is received. Once the request is received, the server 106returns the modified result set in place of the initial result set. Forexample, if a computing device requests the daily headlines at 8:00every day, the server may collect the daily headlines (i.e. the initialresult set) from one or more sources at 7:30 and generate a modifiedresult set such that when the computing device 100 requests the dailyheadlines at 8:00, the modified result set is transmitted to thecomputing device. If no additional content is to be added, step 114 isnot performed, and the initial result set is transmitted to the user (asindicated by the dashed line at 112). In this case, step 116 should beread as “transmit initial result set”. Once the computing device hasreceived the initial result set, the computing device 100 displays theinitial result set to the user.

FIG. 2 shows another exemplary environment in which a request forcontent is received and content is automatically recommended. In asimilar manner to the system described with respect to FIG. 1, acomputing device 200 sends 202 a request for content via acommunications network 204 to a server 206. Again, the server 206processes the request for content to generate an initial result set 208comprising content and identifies a user profile 210. In a similarmanner, the server 206 determines, based on the initial result set andthe user profile, a positivity index score 212 for the initial resultset. Again, the server 206 proceeds to determine, based on thepositivity index score, whether to add additional content to the initialresult set 214 and, if content is to be added, the type of content toadd to the initial result set. For example, a positivity index scorewith a large magnitude indicates that a user is receiving a large amountof that type of content. To reduce the amount of content of that typethat a user receives, the server 206 determines content of a type thatwould reduce the magnitude of the positivity index score. A modifiedresult set is generated by adding content to the initial result set. Themodified result set is a combination of the at least a part of initialresult set and the additional content. The server determines, based onthe user profile and the modified result set, a positivity index scorefor the modified result set 220. This is determined in a similar mannerto the positivity index score for the initial result set, as describedabove in connection with FIG. 1. Based on the positivity index score forthe modified result set, the server 206 proceeds to determine, based onthe positivity index score, whether to add additional content to themodified result set and, if content is to be added, the type of contentto add to the modified result set. For example, a positivity index scorewith a large magnitude indicates that a user is receiving a large amountof that type of content. To reduce the amount of content of that typethat a user receives, the server 206 determines content of a type thatwould reduce the magnitude of the positivity index score. A secondmodified result set is generated by adding content to the modifiedresult set (as indicated by the dashed line between 214 and 220). Thesecond modified result set is the combination of the initial result setand the additional content. A positivity index score is then determinedfor the second modified result set. The server 206 proceeds todetermine, based on the positivity index score, whether to addadditional content to the second modified result set and, if content isto be added, the type of content to add to second the modified resultset. This loop continues until a requirement is met, for example, thepositivity index score of the modified result set being above or below athreshold value. The second (or subsequent) modified result set istransmitted 216, via the communications network 204 to the computingdevice 200. Once the computing device has received the second (orsubsequent) modified result set, the computing device 200 displays thesecond (or subsequent) modified result set 218 to the user and/or playsback the second (or subsequent) modified result set 218 to the user viaa speaker. As before, the server 206 may perform the aforementionedsteps 208-214 and 220 in realtime. Alternatively, the server 206 mayanticipate receiving a request for content from a computing device 200and perform the aforementioned steps 208-214 and 220 before the requestis received. Once the request is received, the server 206 returns thesecond (or subsequent) modified result set in place of the initialresult set. For example, if a computing device requests the dailyheadlines at 8:00 every day, the server may collect the daily headlines(i.e. the initial result set) from one or more sources at 7:30 andgenerate a modified result set such that when the computing device 100requests the daily headlines at 8:00, the second (or subsequent)modified result set is transmitted to the computing device. If noadditional content is to be added, steps 214 and 220 are not performedand the initial result set is transmitted to the user (as indicated bythe dashed line at 212). In this case, step 216 should be read as“transmit initial result set”. Once the computing device has receivedthe initial result set, the computing device 200 displays the initialresult set to the user.

FIG. 3 is a block diagram representing components of a computing deviceand data flow therebetween for receiving a request for content andautomatically recommending content, in accordance with some embodimentsof the disclosure. Computing device 300 (e.g., a computing device 100,200 as discussed in connection with FIGS. 1 and 2) comprises controlcircuitry 302 and an output module 312.

Control circuitry 302 comprises a request module 304 and a transceiver308. Control circuitry 302 may be based on any suitable processingcircuitry and comprises control circuits and memory circuits, which maybe disposed on a single integrated circuit or may be discretecomponents. As referred to herein, processing circuitry should beunderstood to mean circuitry based on one or more microprocessors,microcontrollers, digital signal processors, programmable logic devices,field-programmable gate arrays (FPGAs), application-specific integratedcircuits (ASICs), etc., and may include a multi-core processor (e.g.,dual-core, quad-core, hexa-core, or any suitable number of cores). Insome embodiments, processing circuitry may be distributed acrossmultiple separate processors or processing units, for example, multipleof the same type of processing units (e.g., two Intel Core i7processors) or multiple different processors (e.g., an Intel Core i5processor and an Intel Core i7 processor). Some control circuits may beimplemented in hardware, firmware, or software.

A request for content is generated at the request module 304. Therequest may be generated by a user providing input from a voice-userinterface that is separate from computing device 300, such as amicrophone, voice-enabled remote control, or other audio capture device.A voice input may be received as an analog signal from a microphone, ora digital audio signal. The digital audio signal may be raw audio data,or may be compressed, filtered, or encoded using any suitable audiocompression or encoding format. In the case of a text query, the inputmay be in the form of a signal from a physical keyboard or a keyboarddisplayed on a screen. The input may also comprise a user drawingsymbols that are recognized by the request module 304. The request maybe sent in response to a user opening a dedicated app, such as a newsapp, on the computing device. Alternatively, the user may subscribe to anews alert service, such as via email or an RSS feed, and the requestfor content may be generated by the news alert service. Alternatively,the request may comprise a request from an app that shows news headlinesto a user. If the request is generated by a device external to thecomputing device, for example, a via a microphone or a keyboard,transmission of the input to computing device 300 may be accomplishedusing a wired connection, such as an audio cable, USB cable, ethernetcable or the like, attached to a corresponding input port at computingdevice 300, or may be accomplished using a wireless connection, such asBLUETOOTH, WiFi, WiMax, GSM, UTMS, CDMA, TDMA, 3G, 4G, 4G LTE, or anyother suitable wireless transmission protocol. The computing device 300may comprise a physical input port such as a 3.5 mm audio jack, RCAaudio jack, USB port, ethernet port, or any other suitable connectionfor receiving an input over a wired connection, or may comprise awireless receiver configured to receive data via BLUETOOTH, WiFi, WiMax,GSM, UTMS, CDMA, TDMA, 3G, 4G, 4G LTE, or other wireless transmissionprotocols.

The transceiver 308 receives 306 the request for content from therequest module 304 and transmits the request to a server. Thetransceiver 308 receives a modified result set from the server, asdiscussed above in connection with FIGS. 1 and 2 and below in connectionwith FIGS. 4-7. The output module 312 receives 310 the modified resultset from the transceiver 308 and outputs the modified result set 314 tothe user. As discussed above, the content is any information that can becategorized and communicated to a user and includes an article thatpredominantly comprises text, a video, a series of pictures, audio or ascombination of any of these. The output module 312 may process themodified result set in any desired manner. The output module 312 mayprocess the modified result set 314 so that it can be displayed to theuser via a display, and/or may so that it can be played back via aspeaker.

FIG. 4 is a flowchart representing an illustrative process 400 forreceiving a request for content and automatically recommending content,in accordance with some embodiments of the disclosure. Process 400 maybe implemented on any aforementioned computing device 100, 200, 300. Inaddition, one or more actions of process 400 may be incorporated into orcombined with one or more actions of any other process or embodimentdescribed herein.

At 402, computing device 100, 200, 300 receives a request for content.The request may be a voice request or a text request. In the case of avoice request, the voice request may be received as an analog signalfrom a microphone, or a digital audio signal. The digital audio signalmay be raw audio data, or may be compressed, filtered, or encoded usingany suitable audio compression or encoding format. In the case of a textrequest, the input may be in the form of a signal from a physicalkeyboard or a keyboard displayed on a screen. The input may alsocomprise a user drawing symbols that are recognized by the computingdevice 100, 200, 300.

At 404, an initial result set is generated. Typically, the request forcontent is transmitted to a server via a communications network, and aninitial result set comprising content is generated at the server. Asdiscussed above, content is any information that can be categorized andcommunicated to a user, for example, news. At 406 a user profile isidentified. As before, the user profile typically comprises at least oneof age, occupation, location, financial status and/or health condition.Again, the user profile can be a profile that is provided by a thirdparty or by the user themself. Alternatively, the user profile may bestored in a database at the server and accessed on demand or informationabout the user can be collected at the server and generated at theserver in real time.

At 408, a positivity index score is determined for the initial resultset. The positivity index score is based on the initial result set andthe user profile. The determining may be performed, at least in part,with a positivity analyzer engine. Such an engine analyzes the initialresult set to determine the context of each result in the initial resultset, based on the user profile. The engine generates a score for eachitem in the initial result set, based on the context of the result inlight of the user profile. A result of a first type may correspond to asection in the user profile, such as occupation, and be given a positivescore based on the context of the result in light of the user profile. Aresult of a second type may correspond to the same section in the userprofile, but may be given a negative score based on the context of theresult in light of the user profile. A result of a third type maycorrespond to a different section in the user profile, such as health,and be assigned zero based on the context of the result in light of theuser profile. More than one section of the user profile may be relevantto a result and more than one result may be relevant to a single sectionof the user profile. The type may relate to whether the resultcorresponds positively or negatively to the user profile. A negativescore may be a negative decimal up to −1, and the positive score may bea positive decimal up to 1. Any scoring system may be used. A negativescore may be associated with a news article that corresponds“negatively” to a section in the user profile, and a positive score maybe associated with a news article that corresponds “positively” to asection in the user profile. The scores for the different results may besummed to determine a positivity index score. Scores for results thatrelate to different sections of a user profile may be weighteddifferently. In this way, a positivity index score can be determined foran individual user. Additionally, the positivity engine may further takeinto account previous results that have been shown to the user. If auser has been presented with a similar result previously, the result maybe given a larger weighting, to indicate that that particular result isbeing shown regularly. In this way, a time-averaged positivity indexscore may be determined.

At 410, it is determined, based on the positivity index score, whetherto add additional content to the initial result set and, if additionalcontent is to be added, the type of content to add to the initial resultset. For example, a positivity index score with a large magnitudeindicates that a user is receiving a large amount of that type ofcontent. To reduce the amount of content of that type that a userreceives, the server determines content of a type that would reduce themagnitude of the positivity index score. At 412, content is added to theinitial result set to generate a modified result set, which is thecombination of at least a part of the initial result set and theadditional content.

At 414, the modified result set is transmitted to the computing device100, 200, 300. Typically, the modified result set is transmitted via thecommunications network to the computing device 100, 200, 300. Once thecomputing device has received the modified result set, the computingdevice 100, 200, 300 typically displays the modified result set to theuser and/or plays back the modified result set to the user via aspeaker.

FIG. 5 is a flowchart representing an illustrative process 500 forreceiving a request for content and automatically recommending content,in accordance with some embodiments of the disclosure. Process 500 maybe implemented on any aforementioned computing device 100, 200, 300. Inaddition, one or more actions of process 500 may be incorporated into orcombined with one or more actions of any other process or embodimentdescribed herein.

In a similar manner, at 502, computing device 100, 200, 300 receives arequest for content. The request may be a voice request or a textrequest. In the case of a voice request, the voice request may bereceived as an analog signal from a microphone, or a digital audiosignal. The digital audio signal may be raw audio data, or may becompressed, filtered, or encoded using any suitable audio compression orencoding format. In the case of a text request, the input may be in theform of a signal from a physical keyboard or a keyboard displayed on ascreen. The input may also comprise a user drawing symbols that arerecognized by the computing device 100, 200, 300.

At 504, an initial result set is generated. Typically, the request forcontent is transmitted to a server via a communications network, and aninitial result set comprising content is generated at the server. Asdiscussed above, content is any information that can be categorized andcommunicated to a user, for example, news. At 506, a user profile isidentified. As before, the user profile typically comprises at least oneof age, occupation, location, financial status and/or health condition.Again, the user profile can be a profile that is provided by a thirdparty or by the user themself. Alternatively, the user profile may bestored in a database at the server and accessed on demand, orinformation about the user can be collected at the server and generatedat the server in real time.

At 508, a positivity index score is determined for the initial resultset. The positivity index score is based on the initial result set andthe user profile. The determining may be performed, at least in part,with a positivity analyzer engine. Such an engine analyzes the initialresult set to determine the context of each result in the initial resultset, based on the user profile. The engine generates a score for eachitem in the initial result set, based on the context of the result inlight of the user profile. A result of a first type may correspond to asection in the user profile, such as occupation, and be given a positivescore. A result of a second type may correspond to the same section inthe user profile, but may be given a negative score, and a result of athird type may correspond to a different section in the user profile,such as health, and be assigned zero. The type may relate to whether theresult corresponds positively or negatively to the user profile. Anegative score may be a negative decimal up to −1 and the positive scoremay be a positive decimal up to 1. Any scoring system may be used. Anegative score may be associated with a news article that corresponds“negatively” to a section in the user profile, and a positive score maybe associated with a news article that corresponds “positively” to asection in the user profile. The scores for the different results may besummed to determine a positivity index score. Scores for results thatrelate to different sections of a user profile may be weighteddifferently. In this way, a positivity index score can be determined foran individual user. Additionally, the positivity engine may further takeinto account previous results that have been shown to the user. If auser has been presented with a similar result previously, the result maybe given a larger weighting, to indicate that that particular result isbeing shown regularly. In this way, a time-averaged positivity indexscore may be determined.

At 510, the determined positivity index score is compared to a thresholdvalue. If the determined positivity index score or the magnitude of thedetermined positivity index score is above the threshold value, then, at512, the server identifies a first type of additional content to add tothe initial result set. At 514, content is added to the initial resultset to generate a modified result set, which is the combination of atleast a part of the initial result set and the additional content. Ifthe determined positivity index score is below the threshold value,then, at 516, the server identifies a second type of additional contentto add to the initial result set. At 518, content is added to theinitial result set to generate a modified result set, which is thecombination of at least a part of the initial result set and theadditional content.

At 520, the modified result set is transmitted to the computing device100, 200, 300. Typically the modified result set is transmitted via thecommunications network to the computing device 100, 200, 300. Once thecomputing device has received the modified result set, the computingdevice 100, 200, 300 typically displays the modified result set to theuser and/or plays back the modified result set to the user via aspeaker.

FIG. 6 is a flowchart representing an illustrative process 600 forreceiving a request for content and automatically recommending content,in accordance with some embodiments of the disclosure. Process 600 maybe implemented on any aforementioned computing device 100, 200, 300. Inaddition, one or more actions of process 600 may be incorporated into orcombined with one or more actions of any other process or embodimentdescribed herein.

In a similar manner, at 602, computing device 100, 200, 300 receives arequest for content. The request may be a voice request or a textrequest. In the case of a voice request, the voice request may bereceived as an analog signal from a microphone, or a digital audiosignal. The digital audio signal may be raw audio data, or may becompressed, filtered, or encoded using any suitable audio compression orencoding format. In the case of a text request, the input may be in theform of a signal from a physical keyboard or a keyboard displayed on ascreen. The input may also comprise a user drawing symbols that arerecognized by the computing device 100, 200, 300.

At 604, an initial result set is generated. Typically, the request forcontent is transmitted to a server via a communications network, and aninitial result set comprising content is generated at the server. Asdiscussed above, content is any information that can be categorized andcommunicated to a user, for example, news. At 606, a user profile isidentified. As before, the user profile typically comprises at least oneof age, occupation, location, financial status and/or health condition.Again, the user profile can be a profile that is provided by a thirdparty or by the user themself. Alternatively, the user profile may bestored in a database at the server and accessed on demand, orinformation about the user can be collected at the server and generatedat the server in real time.

At 608, a positivity index score is determined for the initial resultset. The positivity index score is based on the initial result set andthe user profile. The determining may be performed, at least in part,with a positivity analyzer engine. Such an engine analyzes the initialresult set to determine the context of each result in the initial resultset, based on the user profile. The engine generates a score for eachitem in the initial result set, based on the context of the result inlight of the user profile. A result of a first type may correspond to asection in the user profile, such as occupation, and be given a positivescore. A result of a second type may correspond to the same section inthe user profile, but may be given a negative score, and a result of athird type may correspond to a different section in the user profile,such as health, and be assigned zero. The type may relate to whether theresult corresponds positively or negatively to the user profile. Anegative score may be a negative decimal up to −1, and the positivescore may be a positive decimal up to 1. Any scoring system may be used.A negative score may be associated with a news article that corresponds“negatively” to a section in the user profile, and a positive score maybe associated with a news article that corresponds “positively” to asection in the user profile. The scores for the different results may besummed to determine a positivity index score. Scores for results thatrelate to different sections of a user profile may be weighteddifferently. In this way, a positivity index score can be determined foran individual user. Additionally, the positivity engine may further takeinto account previous results that have been shown to the user. If auser has been presented with a similar result previously, the result maybe given a larger weighting, to indicate that that particular result isbeing shown regularly. In this way, a time-averaged positivity indexscore may be determined.

At 610, the determined positivity index score is compared to a thresholdvalue. If the determined positivity index score is above the thresholdvalue, or the magnitude of the determined positivity index score, then,at 612, the server identifies a first type of additional content to addto the initial result set. At 614, content is added to the initialresult set to generate a modified result set, which is the combinationof at least a part of the initial result set and the additional content.If the determined positivity index score is below the threshold value,then, at 616, the server identifies a second type of additional contentto add to the initial result set. At 618, content is added to theinitial result set to generate a modified result set, which is thecombination of at least a part of the initial result set and theadditional content.

At 620, a positivity index score of the modified result set isdetermined. This is determined in a similar manner to the positivityindex score of the initial result set. At 610, the positivity indexscore of the modified result set is compared to the threshold value. Ifthe positivity index score is above or below the threshold value,additional content of a first or second type is added to the modifiedresult set to create a second modified result set at 612, 614, 616, 618.The positivity index score of the second modified result set isdetermined at 620, and this is compared to the threshold value at 610.This loop continues until the positivity index score of the second (orsubsequent) modified result set is at the threshold value.

Once the positivity index score of the second (or subsequent) modifiedresult set is at the threshold value, at 622, the second (or subsequent)modified result set is transmitted to the computing device 100, 200,300. Typically the second (or subsequent) modified result set istransmitted via the communications network to the computing device 100,200, 300. Once the computing device has received the second (orsubsequent) modified result set, the computing device 100, 200, 300typically displays the second (or subsequent) modified result set to theuser and/or plays back the second (or subsequent) modified result set tothe user via a speaker.

FIG. 7 shows how a positivity index score may be based on an initialresult set and a user profile via the use of knowledge graphs 700. FIG.7 comprises two examples of initial result sets 702, 708. In a firstexample, a knowledge graph 704 based on first initial results 702 isbuilt. A knowledge graph 706 based on a user profile is also built. Ascore 708 is determined for each field in the knowledge graph 704 basedon the first initial result set 702 and each field in the knowledgegraph 706 based on the user profile. The scores for the differentresults may be summed to determine a positivity index score. Scores forresults that relate to different sections of a user profile may beweighted differently. In this way, a positivity index score can bedetermined for an individual user. Additionally, the positivity enginemay further take into account previous results that have been shown tothe user. If a user has been presented with a similar result previously,the result may be given a larger weighting, to indicate that thatparticular result is being shown regularly. In this way, a time-averagedpositivity index score may be determined. As can be seen, scores for thefirst initial result set are generally of a first type (e.g. positive).In a second example, a knowledge graph 710 based on second initialresults 708 is built. A knowledge graph 706 based on a user profile isalso built. A score 712 is determined for each field in the knowledgegraph 710 based on the second initial result set 708 and each field inthe knowledge graph 706 based on the user profile. These scores arecalculated in the manner described in connection with the first example.As can be seen, scores for the second initial result set are generallyof a second type (e.g. negative). Based on the positivity index score,results of a different type can be added to the initial results tochange the positivity index score of the results. This helps, forexample, to ensure that a user is not exposed to too much content of acertain type. The positivity analyzer engine, as described herein, maybuild knowledge graphs as described in connection with FIG. 7.

As an alternative and/or in addition to building knowledge graphs, thepositivity analyzer engine may make use of key values pairs to determinea positivity index score. A profile field may have keywords associatedwith it, and the positivity analyzer engine may process initial resultsto identify those keywords and assign a score to the initial resultsbased on the keywords identified. For example, a profile occupation“doctor” may have “patient” and “illness” as keywords associated withit. If the positivity analyzer engine processes a result and identifiesthose keywords, a score based on those keywords is assigned to thecontent. The positivity analyzer engine may process text, audio and/orvideo to identify keywords.

The processes described above are intended to be illustrative and notlimiting. One skilled in the art would appreciate that the steps of theprocesses discussed herein may be omitted, modified, combined, and/orrearranged, and any additional steps may be performed without departingfrom the scope of the disclosure. More generally, the above disclosureis meant to be exemplary and not limiting. Furthermore, it should benoted that the features and limitations described in any one embodimentmay be applied to any other embodiment herein, and flowcharts orexamples relating to one embodiment may be combined with any otherembodiment in a suitable manner, done in different orders, or done inparallel. In addition, the systems and methods described herein may beperformed in real time. It should also be noted that the systems and/ormethods described above may be applied to, or used in accordance with,other systems and/or methods.

1. A method for automatically recommending content, the methodcomprising: receiving, from a computing device, a request for content;generating an initial result set in response to the request; identifyinga user profile associated with the request; determining, based on theinitial result set and the user profile, a positivity index score forthe initial result set; determining, based on the positivity indexscore, a type of additional content to add to the initial result set;generating a modified result set by adding the additional content to theinitial result set; and transmitting, to the computing device, at leasta portion of the modified result set. 2-30. (canceled)
 31. The method ofclaim 1, wherein: the user profile comprises a plurality of sections;the method further comprises determining a weighting for at least asub-set of the plurality of sections of the user profile; anddetermining the positivity index score further comprises determining apositivity index score for the initial result set based on at least asub-section of the weighted sections of the user profile.
 32. The methodof claim 1, wherein: the initial result set comprises a plurality ofresults; the method further comprises determining whether one or more ofthe plurality of results has previously been received via the userprofile; and determining the positivity index score further comprisesdetermining a positivity index score for the initial result set based onwhether one or more of the plurality of results has previously beenreceived via the user profile.
 33. The method of claim 1, whereindetermining the type of additional content to add to the initial resultset further comprises adding content of a type that reduces themagnitude of the positivity index score.
 34. The method of claim 1,further comprising: anticipating receiving the request for content atfirst time; and wherein, at a second time before the first time:generating the initial result set in response to the request furthercomprises generating the initial result set in response to anticipatingreceiving the request; identifying the user profile associated with therequest further comprising identifying the user profile associated withthe anticipated request; and the method further comprises storing the atleast a portion of the modified result set.
 35. The method of claim 1,wherein determining the type of additional content to add to the initialresult set further comprises: comparing the positivity index score to athreshold value; and if the positivity index score is above thethreshold value, adding content of a first type to the initial resultset; or if the positivity index score is below the threshold value,adding content of a second type to the initial result set.
 36. Themethod of claim 1, wherein determining the positivity index scorefurther comprises: building a user knowledge graph, wherein the userknowledge graph is based on the user profile and comprises a pluralityof fields; building an initial result set knowledge graph for eachresult in the initial result set, wherein each of the initial result setknowledge graphs comprises a plurality of fields; determining acomponent positivity index between one or more fields in each of theinitial result set knowledge graphs and one or more fields of the userknowledge graph; and determining the positivity index score based on thecomputed component positivity indices.
 37. The method of claim 1,further comprising: determining, based on the modified result set andthe user profile, a positivity index score for the modified result set;comparing the positivity index score of the modified result set to athreshold value to determine whether to add further additional contentof a first type or a second type to the modified result set; if thepositivity index is above or below the threshold value, respectivelygenerating a second modified result set by adding the additional contentof a first type or a second type to the modified result set; andtransmitting, to the computing device and in place of the modifiedresult set, at least a portion of the second modified result set. 38.The method of claim 1, wherein the positivity index score is determined,at least in part, with a positivity analyzer engine.
 39. The method ofclaim 1, wherein the positivity index score is determined, at least inpart, with a positivity analyzer engine and wherein the positivityanalyzer engine maintains a set of key value pairs to link a componentof the user profile with a component of the initial result set.
 40. Asystem for automatically recommending content, the system comprising: acommunication port; and control circuitry configured to: receive, from acomputing device via the communication port, a request for content;generate an initial result set in response to the request; identify auser profile associated with the request; determine, based on theinitial result set and the user profile, a positivity index score forthe initial result set; determine, based on the positivity index score,a type of additional content to add to the initial result set; generatea modified result set by adding the additional content to the initialresult set; and transmit, to the computing device via the communicationport, at least a portion of the modified result set.
 41. The system ofclaim 40, wherein: the user profile comprises a plurality of sections;the control circuitry is further configured to determine a weighting forat least a sub-set of the plurality of sections of the user profile; andthe control circuitry configured to determine the positivity index scoreis further configured to determine a positivity index score for theinitial result set based on at least a sub-section of the weightedsections of the user profile.
 42. The system of claim 40, wherein: theinitial result set comprises a plurality of results; the controlcircuitry is further configured to determine whether one or more of theplurality of results has previously been received via the user profile;and the control circuitry configured to determine the positivity indexscore is further configured to determine a positivity index score forthe initial result set based on whether one or more of the plurality ofresults has previously been received via the user profile.
 43. Thesystem of claim 40, wherein the control circuitry configured todetermine the type of additional content to add to the initial resultset is further configured to add content of a type that reduces themagnitude of the positivity index score.
 44. The system of claim 40,wherein: the control circuitry is further configured to anticipatereceiving the request for content at first time; and wherein, at asecond time before the first time: the control circuity configured togenerate the initial result set in response to the request is furtherconfigured to generate the initial result set in response toanticipating receiving the request; the control circuitry configured toidentify the user profile associated with the request is furtherconfigured to identify the user profile associated with the anticipatedrequest; and the control circuitry is further configured to store the atleast a portion of the modified result set.
 45. The system of claim 40,wherein the control circuitry configured to determine the type ofadditional content to add to the initial result set is furtherconfigured to: compare the positivity index score to a threshold value;and if the positivity index score is above the threshold value, addcontent of a first type to the initial result set; or if the positivityindex score is below the threshold value, add content of a second typeto the initial result set.
 46. The system of claim 40, wherein thecontrol circuitry configured to determine the positivity index score isfurther configured to: build a user knowledge graph, wherein the userknowledge graph is based on the user profile and comprises a pluralityof fields; build an initial result set knowledge graph for each resultin the initial result set, wherein each of the initial result setknowledge graphs comprises a plurality of fields; determine a componentpositivity index between one or more fields in each of the initialresult set knowledge graphs and one or more fields of the user knowledgegraph; and determine the positivity index score based on the computedcomponent positivity indices.
 47. The system of claim 40, wherein thecontrol circuitry is further configured to: determine, based on themodified result set and the user profile, a positivity index score forthe modified result set; compare the positivity index score of themodified result set to a threshold value to determine whether to addfurther additional content of a first type or a second type to themodified result set; if the positivity index is above or below thethreshold value, respectively generating a second modified result set byadding the additional content of a first type or a second type to themodified result set; and transmit, to the computing device and in placeof the modified result set, at least a portion of the second modifiedresult set.
 48. The system of claim 40, wherein control circuitryconfigured to determine the positivity index score is further configuredto determine the positivity index score, at least in part, with apositivity analyzer engine.
 49. The system of claim 40, wherein thecontrol circuitry configured to determine the positivity index score isfurther configured to determine the positivity index score, at least inpart with a positivity analyzer engine and wherein the positivityanalyzer engine maintains a set of key value pairs to link a componentof the user profile with a component of the initial result set.